<template>
  <view>
    <view class="login-container">
      <!-- 提示登录的图标 -->
      <uni-icons type="contact-filled" size="100" color="#AFAFAF"></uni-icons>
      <!-- 登录按钮 -->
      <button type="primary" open-type="getUserInfo" @getuserinfo="getuserinfo" class="btn-login">一键登录</button>
      <!-- 登录提示 -->
      <view class="tips-text">登录后尽享更多权益=</view>
    </view>
  </view>
</template>

<script>
  import {
    mapMutations
  } from 'vuex'
  // 点击一键登录
  //  获取5个参数
  // 需要使用两个api【wx.login+wx.getUserInfo】  或者一个api[wx.login]加一个事件可以拿到[bindgetuserinfo]
  export default {
    name: "my-login",
    data() {
      return {
        params: {}
      };
    },
    methods: {
      ...mapMutations('user', ['setToken','updateUserInfo']),
      // 封装登录获取token函数
      async getToken(query) {
        //const token = await uni.$http.post('/api/public/v1/users/wxlogin',this.params)
        const res = await uni.$http.post('/api/public/v1/users/wxlogin', query)

        console.log(res, 99888) //  没有权限
        this.setToken('token123')
        
        

        //this.bannerList = res.data.message；
      },
      //  获取用户数据的
      getuserinfo(res) {
        // console.log(res,123)
        //  1-拒绝
        if (res.detail.errMsg == 'getUserInfo:fail auth deny') {
          return uni.showToast({
            title: '请重新授权',
            icon: 'none'
          })
        }

        //  2-授权==获取用户信息  【除了code  4个】
        if (res.detail.errMsg == 'getUserInfo:ok') {
          console.log(res.detail.userInfo, 55555)
          
          this.updateUserInfo(res.detail.userInfo)
          
          
          this.params = {
            encryptedData: res.detail.encryptedData,
            iv: res.detail.iv,
            rawData: res.detail.rawData,
            signature: res.detail.signature
          }

          //  2-1获取code
          uni.login({
            success: (res) => {
              if (res.code) {

                this.params['code'] = res.code
                console.log(this.params, 66666)
                //2-2发起网络请求
                this.getToken(this.params)
                
                //  跳转回cart页面   根据条件
                if(wx.getStorageSync('shopcar')){
                 
                  wx.switchTab({
                    url:uni.getStorageSync('shopcar'),
                    complete:()=>{
                      wx.setStorage({
                        key: "shopcar",
                        data: ''
                      })
                    }
                  })

                  
                  
                  
                  
                }
                
              } else {
                console.log('登录失败！' + res.errMsg)
              }
            }
          })
        }




      }
    }
  }
</script>

<style lang="scss">
  .login-container {
    // 登录盒子的样式
    height: 750rpx;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: #f8f8f8;
    position: relative;
    overflow: hidden;

    // 绘制登录盒子底部的半椭圆造型
    &::after {
      content: ' ';
      display: block;
      position: absolute;
      width: 100%;
      height: 40px;
      left: 0;
      bottom: 0;
      background-color: white;
      border-radius: 100%;
      transform: translateY(50%);
    }

    // 登录按钮的样式
    .btn-login {
      width: 90%;
      border-radius: 100px;
      margin: 15px 0;
      background-color: #c00000;
    }

    // 按钮下方提示消息的样式
    .tips-text {
      font-size: 12px;
      color: gray;
    }
  }
</style>
